package com.thb.pay.exception;

import com.thb.pay.core.exception.IBusinessException;

/**
 * @Description 支付网关异常
 * @Author lucky
 * @data 2019/10/16 22:52
 */
public enum PaymentGatewayEnum implements IBusinessException {
//    ERR_0001("0001", "商户签名异常"),
//
//    ERR_0010("0010", "系统错误"),
//    ERR_0011("0011", "请使用post方法"),
//    ERR_0012("0012", "post数据为空"),
//    ERR_0013("0013", "签名错误"),
//    ERR_0014("0014", "参数错误"),
//    ERR_0015("0015", "商户不存在"),
//    ERR_0110("0110", "第三方超时"),
//    ERR_0111("0111", "第三方异常"),
//    ERR_0112("0112", "订单不存在"),
//    ERR_0113("0113", "订单已支付"),
//    ERR_0114("0114", "商品不存在"),
//    ERR_0115("0115", "价格不对"),
//    ERR_0116("0116", "物品数量不对"),
//    ERR_0117("0117", "过程返回255"),
//    ERR_0118("0118", "DB错误"),
//    ERR_0119("0119", "支付中心没有对应的渠道"),
//    ERR_0120("0120", "修改订单状态失败");

    /**
     * 未知异常
     **/
    SIGN_ERROR(10000, "sign.error"),
    /**
     * 参数错误异常
     */
    PARAM_ERROR(10001, "param.error"),
    /**
     * 商户不可用
     */
    MERCHANT_DISABLE_ERROR(10002, "merchant.disable.error"),
    /**
     * 商户不存在
     */
    MERCHANT_NOT_EXIST_ERROR(10003, "merchant.not.exist.error"),

    /**
     * ip不可访问
     */
    IP_ACCESS_DENIED_ERROR(10004, "ip.access.denied.error"),

    APPID_NOT_EXIST_ERROR(10005, "appId.not.exist.error"),

    APPID_DISABLE_ERROR(10006, "appId.disable.error"),

    PRODUCT_NOT_EXIST_ERROR(10007, "productId.not.exist.error"),

    PRODUCT_DISABLE_ERROR(10008, "productId.disable.error"),

    CURRENCY_NOT_SUPPORT_ERROR(10009, "currency.not.support.error"),

    CURRENCY_DISABLE_ERROR(10010, "currency.disable.error"),

    MONEY_NOT_SUPPORT_ERROR(10011, "money.disable.error"),

    MERCHANT_PAY_PASSAGE_DISABLE_ERROR(10012, "merchant.pay.passage.disable.error"),

    MERCHANT_PAY_PASSAGE_NOT_EXIST_ERROR(10013, "merchant.pay.passage.not.exist.error"),

    PAY_PASSAGE_ACCOUNT_NOT_EXIST_ERROR(10014, "pay.passage.account.not.exist.error"),

    PAY_PASSAGE_ACCOUNT_DISABLE_ERROR(10015, "pay.passage.account.disable.error"),

    PAY_PASSAGE_DISABLE_ERROR(10016, "pay.passage.disable.error"),

    PAY_PASSAGE_NOT_ACCOUNT_ERROR(10017, "pay.passage.not.account.error"),

    /**
     * 商户未配置轮询支付通道
     */
    MERCHANT_PAY_PASSAGE_NOT_POLL_ERROR(10018, "merchant.pay.passage.not.poll.error"),
    ;

    /**
     * 异常代码
     */
    private int code;

    /**
     * 异常描述
     */
    private String messageKey;

    PaymentGatewayEnum(String messageKey) {
        this.code = 0;
        this.messageKey = messageKey;
    }

    /**
     * 描述：构建异常
     *
     * @param code       错误代码
     * @param messageKey 错误描述
     */
    PaymentGatewayEnum(Integer code, String messageKey) {
        this.code = code;
        this.messageKey = messageKey;
    }

    public int getCode() {
        return code;
    }

    public String getMessageKey() {
        return messageKey;
    }

}
